using System;
using System.Data;
using System.Linq;
using System.Linq.Expressions;

namespace Web.App.Infrastructure.UnitOfWork.Contracts
{
    public interface IUnitOfWork : IDisposable
    {
        Guid ID { get; }
        ConversationType ConversationType { get; }
        void Flush();
        bool IsInActiveTransaction { get; }
        IUoWTransaction BeginTransaction();
        IUoWTransaction BeginTransaction(IsolationLevel isolationLevel);
        void TransactionalFlush();
        void TransactionalFlush(IsolationLevel isolationLevel);
        object CurrentSession { get; }

    }
}